import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;

/*
* ReentrantLock的用法:
* 1. lock():加锁，如果获取不到锁就死等
* 2. trylock(超过时间):加锁，如果获取不到锁，等待一定的时间之后就放弃加锁
* 3. unlock() :解锁
* */

public class Demo_1102 {
    public static void main(String[] args) throws InterruptedException{
        //创建一个ReentrantLock的对象
        ReentrantLock lock = new ReentrantLock();

        //加锁
        lock.lock();
        //锁定的代码

        //释放锁
        lock.unlock();

        //尝试加锁，如果能获取到锁直接返回true，执行加锁的逻辑，如果获取不到返回false,执行其他的逻辑
        lock.tryLock();

        //尝试加锁，并指定等待时间
        lock.tryLock(1, TimeUnit.SECONDS);
    }
}
